package com.generic.newopt.demo1;

/**
 * new一个泛型是不行的(new T())，但可以通过Class的newInstance()创建(public Factory(Class<T>
 * kind))
 * ，但是newInstance()要求必须有无参数的构造函数，如果没有默认的构造函数，这个错误在编译期无法捕获，所以建议使用显示的工厂，并限制其类型
 * 
 * @author Administrator
 * 
 */
public class Test {

	public static void main(String[] args) {
		new Foo2<Integer>(new IntegerFactory());
		new Foo2<Widget>(new Widget.Factory());
	}

}
